【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 您所在的位置:网站首页 visual studio调用堆栈 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用

【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用

2023-04-15 15:31| 来源: 网络整理| 查看: 265

文章目录一、Visual Studio 安装 " 使用 C++ 的移动开发 "二、Visual Studio 中创建 " 动态共享库(Android) " 类型应用三、设置编译选项四、生成 ARM 架构 SO 动态库五、生成 x86 架构 SO 动态库一、Visual Studio 安装 " 使用 C++ 的移动开发 "

使用 Visual Studio 2019 开发环境 , 参考 【Visual Studio】Visual Studio 2019 社区版 CMake开发环境安装 ( 下载 | 安装相关组件 | 创建编译执行项目 | 错误处理 ) 博客 ;

在 Visual Studio Installer 中 , 安装 " 使用 C++ 的移动开发 " ;

等待安装完成 ;

二、Visual Studio 中创建 " 动态共享库(Android) " 类型应用

在 Visual Studio 2019 欢迎界面 选择 " 创建新项目 " ,

在 创建新项目 对话框中 , 选择 " 动态共享库(Android) " 类型的项目 ;

设置项目的存放路径 ;

下面是创建项目时 , 自动生成的代码 ; 所有代码都在 extern "C" {} 包裹中 , 是以标准 C 格式导出 ;

#include "VS_NDK_Demo.h" #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "VS_NDK_Demo", __VA_ARGS__)) #define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "VS_NDK_Demo", __VA_ARGS__)) extern "C" { /*此简单函数返回平台 ABI,此动态本地库为此平台 ABI 进行编译。*/ const char * VS_NDK_Demo::getPlatformABI() { #if defined(__arm__) #if defined(__ARM_ARCH_7A__) // 64 位 arm #if defined(__ARM_NEON__) // 64 位 arm #define ABI "armeabi-v7a/NEON" #else #define ABI "armeabi-v7a" // 32 位 arm #endif #else #define ABI "armeabi" #endif #elif defined(__i386__) // x86 架构 #define ABI "x86" #else #define ABI "unknown" #endif LOGI("This dynamic shared library is compiled with ABI: %s", ABI); return "This native library is compiled with ABI: %s" ABI "."; } void VS_NDK_Demo() { } VS_NDK_Demo::VS_NDK_Demo() { } VS_NDK_Demo::~VS_NDK_Demo() { } }三、设置编译选项

右键点击 " 解决方案资源管理器 " , 在弹出的菜单中 , 选择 " 属性 " 设置 ;

设置预处理器 :

设置预编译头文件 :

预编译头文件是一些常用的头文件 : pch.h 内容如下 ;

#include #include #include #include #include #include 四、生成 ARM 架构 SO 动态库

生成动态库 : 右键点击 " 解决方案资源管理器 " , 在弹出的菜单中 , 选择 " 仅用于项目(J) -> 仅生成 VS_NDK_Demo(B) " 选项 ;

生成动态库结果 : 生成的动态库导出到了 D:\002_Project\006_Visual_Studio\VS_NDK_Demo\VS_NDK_Demo\ARM\Debug\libVS_NDK_Demo.so 路径中 ; 项目的目录是 D:\002_Project\006_Visual_Studio\VS_NDK_Demo\VS_NDK_Demo ;

五、生成 x86 架构 SO 动态库

上面导出的 ARM 架构的动态库 , 可以选择 x86 架构 , 再次编译 ; 可选择的架构有 ARM , ARM64 , x86 , x64 ;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有